/*
 *  TestCounterPtr.h
 *  utility
 *
 *  Created by serika on 10-10-6.
 *  Copyright 2010 serika. All rights reserved.
 *
 */

#ifndef test_TestCounterPtr_h
#define test_TestCounterPtr_h

#include <CppUnit/TestFixture.h>
#include <cppunit/extensions/HelperMacros.h>

namespace serika
{
	namespace test
	{
		class TestCounterPtr : public CppUnit::TestFixture
		{
		public:
			TestCounterPtr();
			virtual ~TestCounterPtr();
			
			CPPUNIT_TEST_SUITE(TestCounterPtr);
			CPPUNIT_TEST(TestRunWell);
			CPPUNIT_TEST_FAIL(TestUseDeletedPtr);
			CPPUNIT_TEST(TestTwoKindPtr);
			CPPUNIT_TEST(TestInVector);
			CPPUNIT_TEST(TestInVector2);
			CPPUNIT_TEST(TestTwoSameKindPtr);
			CPPUNIT_TEST(TestWrapPtrTwice);
			CPPUNIT_TEST(TestSwitchPtr);
			CPPUNIT_TEST_SUITE_END();
			
			void TestRunWell();
			void TestUseDeletedPtr();
			void TestTwoKindPtr();
			void TestInVector();
			void TestInVector2();
			void TestTwoSameKindPtr();
			void TestWrapPtrTwice();
			void TestSwitchPtr();
		};
	}
}

#endif
